//
//  CCMainUITabBarController.swift
//  CC-SinaWeibo
//
//  Created by Chenchen on 16/1/30.
//  Copyright © 2016年 Chenchen. All rights reserved.
//

import UIKit

class CCMainUITabBarController: UITabBarController {
// MARK: 设置按钮的监听事件  private:私有函数
    //1.不希望外界访问改方法 可以加上 private关键字 来限制访问
    //2.一旦targe - action 对应的方法添加了private 之后 运行循环就无法找到该方法
    //3.在方法前添加 @objc 告诉运行循环 这个方法是基于OC消息动态派发机制来执行
   @objc private func plusBtnDidClick() {
        // 查看是否打印
        print(__FUNCTION__)
    }
    
// MARK: 控制器的入口
    override func viewDidLoad() {
        super.viewDidLoad()
        // 打印数据类型 -- UITabBar
        //print(tabBar.classForCoder)
        
        // 实例化TabBar
        let mainTabBar = CCMainTabBar()
        // 由于系统的TabBar是个只读的属性,不能够直接设置,所以我们通过kvc的方式,在运行时进行替换身份
        setValue(mainTabBar, forKey: "tabBar")
        
        // 打印数据类型 -- CCMainTabBar
        //print(tabBar.classForCoder)
        
        // 设置传递的字符串
        let actionName = "plusBtnDidClick"
        // 如果直接在方法中传递字符串,会直接讲字符串转换为Selector类型,不能够直接使用的
        mainTabBar.plusBut.addTarget(self,action:Selector(actionName), forControlEvents:.TouchUpInside)
        
        // 调用
        addChildViewControllers()
    }


// MARK: 设置图片和文字  private:私有函数
    private func addChildViewControllers() {
        // 首页
        addChildViewController(CCHomeTableViewController(),title: "首页",imageName: "tabbar_home")
        // 消息
        addChildViewController(CCMessageTableViewController(),title: "消息",imageName: "tabbar_message_center")
        // 发现
        addChildViewController(CCDiscoverTableViewController(),title: "发现",imageName: "tabbar_discover")
        // 我
        addChildViewController(CCProfileTableViewController(),title: "我",imageName: "tabbar_profile")
    }
    
    
// MARK: 添加单个的视图控制器  private:私有函数
    private func addChildViewController(vc: UIViewController, title: String, imageName: String) {
        // 设置文字的颜色
//        tabBar.tintColor = UIColor.orangeColor()
        // 导航控制器
        let nav = UINavigationController(rootViewController: vc)
        // 设置文字 --> 上下文字都设置
        vc.title = title
        // 设置图片
        vc.tabBarItem.image = UIImage(named: imageName)
        // 添加
        addChildViewController(nav)
    
    }


}
